var productId=CommonUtils.uncompile(CommonUtils.getQueryString("productId"));
var iframeName = CommonUtils.getQueryString("iframeName");
$(function(){
    // 表单验证初始化
    initFormValid();
    //初始化富文本框
   var ue = UE.getEditor("productContentEdit");
    // 初始化图片文件选择框
    $('#file-pretty input[type="file"]').prettyFile({text:"请选择..."});
    // 图片上传操作
    initUploadImage();

    // 保存按钮点击事件
    $("#btnSave").click(function() {
        saveAtt();// 保存数据
    });

    // 关闭选项卡
    $('#btnEnd').on('click', function(ev) {
        closeMenuTab();
    });

    if(productId){
        $("#edit").show();
        // 保存按钮显示
        $("#btnSave").show();
        // 重置表单
        $("#productForm").get(0).reset();
        // 重置验证
        initFormValid().resetForm();
        $("#productForm").find(".has-error").removeClass("has-error");
        // 查询产品详细信息
        var productInfo = findProductInfo(productId);
        // 填充表单数据
        CommonUtils.fillFormData("#productForm", JSON.stringify(productInfo));
        wordProductTitleTwoNum(productInfo);// 展示摘要的字符数
        // 填充图片
        showHeadImg($("#productForm"), productInfo.productImgUrl);
        // 填充隐藏productId
        $("#productForm").find("#productId").val(productId);

        UE.getEditor("productContentEdit").ready(function() {
            // 填充协议富文本域
            UE.getEditor("productContentEdit").setContent(productInfo.productContent);
        });
    }else{
        // 显示区域
        $("#edit").show();
        // 重置表单
        $("#productForm").get(0).reset();
        UE.getEditor("productContentEdit").setContent("");
        // 保存按钮显示
        $("#btnSave").show();
        // 重置验证
        initFormValid().resetForm();
        $("#productForm").find(".has-error").removeClass("has-error");
    }

    // ueditorUpload

});

//表单验证初始化
var initFormValid = function() {
    var e = "<i class='fa fa-times-circle'></i> ";
    var validate = $("#productForm").validate(
        {
            rules : {
                productTitleOne : "required",
                productTitleTwo: "required",
                productTypeSort: "required"

            },
            messages : {
                productTitleOne : e + "请输入标题",
                productTitleTwo : e + "请输入摘要",
                productTypeSort : e + "请输入序号",

            },
            highlight : function(e) {
                if (e.type == "radio" || e.type == "checkbox") {
                    $(e).parent().parent().parent().removeClass(
                        "has-success").addClass("has-error");
                } else {
                    $(e).parent().parent().removeClass("has-success")
                        .addClass("has-error");
                }
            },
            success : function(e) {
                if (e.type == "radio" || e.type == "checkbox") {
                    $(e).parent().parent().parent()
                        .removeClass("has-error");// .addClass("has-success")
                } else {
                    $(e).parent().parent().removeClass("has-error");// .addClass("has-success")
                }
            },
            errorElement : "span",
            errorPlacement : function(e, r) {
                if (r.is(":radio") || r.is(":checkbox")) {
                    e.appendTo(r.parent().parent());
                } else {
                    e.appendTo(r.parent());
                }
            },
            errorClass : "help-block m-b-none",
            validClass : "help-block m-b-none"
        });
    return validate;
}

//保存产品资料
var saveAtt = function() {
    // 验证表单数据
    if (!$("#productForm").valid()) {
        return;
    }
    // 获取表单元素所有数据集合
    var formData = CommonUtils.getFormJson('#productForm');
    // 获取富文本域 详情值
    var tweetHTML =  UE.getEditor("productContentEdit").getContent();
    formData.productContent = tweetHTML;
    formData.belongToId = "0";
    var url = null;
    if (productId) {// 修改
        url = "/init/product/updateProduct";
        formData.productId = productId
    } else {// 添加
        url = "/init/product/addProduct";

    }
    var dataParam = getProduct(formData);
    // 请求后台
    $.ajax({
        url : url,
        data : CommonUtils.encapsulationData(dataParam),
        type : 'post',
        dataType : 'json',
        contentType : "application/json",
        success : function(data) {
            if (data.result) {
                // 消息提示款
                swal({
                    title : "恭喜您",
                    text : data.msg,
                    type : "success"
                }, function() {
                    window.parent.frames[iframeName].location.reload();
                    closeMenuTab();//关闭当前选项卡
                });
            } else {
                // 消息提示款
                swal({
                    title : "很抱歉",
                    text : data.msg,
                    type : "error"
                });
            }
        },
        error : function(req, status, err) {
            // 消息提示款
            errorFunc(req, status, err);
        }
    });
};

//查询产品详细信息
var findProductInfo = function(productId) {
    var productInfo = null;
    $.ajax({
        url : '/init/product/findProducts',
        data : CommonUtils.encapsulationData({
            productId : productId
        }),
        type : 'post',
        dataType : 'json',
        async : false,// 同步请求
        contentType : "application/json",
        success : function(data) {
            if (null != data) {
                productInfo = data;
            }
        },
        error : function(req, status, err) {
            // 消息提示款
            errorFunc(req, status, err);
        }
    });
    return productInfo;
}
//上传图片
var initUploadImage = function(){
    // 图片上传
    $(document).on('change', "input[accept='image/*']", function(){
        if(this.files.length > 1){
            // 消息提示款
            swal({title : "很抱歉",text : "上传图片总数不能超过1个！",type : "info"});
            return;
        }
        for(var i = 0; i < this.files.length; i++){
            //文件后缀
            var filePostfix = this.files[i].name.split('.').splice(-1).toString().toLowerCase();
            if(!/(jpg|png|jpeg)$/.test(filePostfix)){
                // 消息提示款
                swal({title : "很抱歉",text : "上传封面图片格式错误！",type : "info"});
                return;
            }
            //文件大小判断
            var fileSize = this.files[i].size;
            if(fileSize>5*1024*1024){
                // 消息提示款
                swal({title : "很抱歉",text : "上传封面图片最大不能超过5M！",type : "info"});
                return;
            }
        }
        // 创建FormData对象
        var data = new FormData();
        // 为FormData对象添加数据
        $.each($(this)[0].files, function(i, file) {
            data.append('upload_file', file);
        });
        var FileController = '/init/user/upload';
        $.ajax({url:FileController,
            data:data,
            type:'post',
            dataType:'json',
            processData: false,
            contentType: false,
            success:function(rs) {
                if(rs.result){
                    // 消息提示款
                    swal({title : "恭喜您",text : rs.msg,type : "success"},function(){
                        // 显示上传成功图片
                        if(null != rs.url && "" != rs.url){
                            $("#productForm").find("#productImgUrl").val(rs.url);
                            $("#productForm #divImgDoc").empty();
                            showHeadImg($("#productForm"),rs.url);
                        }
                    });
                } else {
                    // 消息提示款
                    swal({title : "很抱歉",text : rs.msg, type : "error"});
                }
            },
            error : function(req, status, err) {
                // 消息提示款
                errorFunc(req, status, err);
            }
        });
    });
}


//拼接加载图片
var showHeadImg = function(from, url){
    // 新增类型下拉控选项值件初始化
    var serverPath = CommonUtils.getServerRoot();
    var imgURL = url;
    from.find("#divIMG").show();
    var img = '<div id="imgItem" style="float:left">';
    img += '<div>';
    img += '<a class="fancybox" href="'+serverPath + imgURL+'" title="封面图片">';
    img += '<img alt="image" id="fileUrl" name="fileUrl" style="width:120px;height:100px;margin: 0 5px 5px 0;" fileUrl="'+imgURL+'" src="'+serverPath + imgURL+'" />';
    img += '</a>';
    img += '</div>';
    img += '</div>';
    from.find("#divIMG #divImgDoc").append(img);

    // 加载图片预览
    $(".fancybox").fancybox({openEffect:"none",closeEffect:"none"});
}

//计算 字符数
function wordStatic(input) {
    // 获取要显示已经输入字数文本框对象
    var content = document.getElementById('num');
    if (content && input) {
        // 获取输入框输入内容长度并更新到界面
        var value = input.value;
        // 将换行符不计算为单词数
        value = value.replace(/\n|\r/gi,"");
        // 更新计数
        content.innerText = value.length;
    }
}

// 展示数据时候计算产品摘要当前的字数
var wordProductTitleTwoNum = function(dataInfo){
    if(null != dataInfo.productTitleTwo && "" != dataInfo.productTitleTwo){
        //填充备注的字数提示
        if(dataInfo.productTitleTwo.length > 0){
            var productTitleTwo = dataInfo.productTitleTwo.replace(/\n|\r/gi,"");
            $("#num").html(productTitleTwo.length)
        }
    }
}

var getProduct = function(data){
    var product = {};
    product.isCarousel = data.isCarousel;
    product.isCaseCarousel = data.isCaseCarousel;
    product.isDelicacy = data.isDelicacy;
    product.productId = data.productId;
    product.productImgUrl = data.productImgUrl;
    product.productTitleOne = data.productTitleOne;
    product.productTitleTwo = data.productTitleTwo;
    product.productTypeSort = data.productTypeSort;
    product.productContent = data.productContent;
    product.belongToId = data.belongToId;
    return product;
}